์ž๋ฐ” ์„œ๋ธ”๋ฆฟ/JSP -> ์Šคํ”„๋ง

์„œ๋ธ”๋ฆฟ(Servlet)

์ •์˜ : ์„œ๋ธ”๋ฆฟ์€ ์ž๋ฐ”๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ ์„œ๋ฒ„ ์‚ฌ์ด๋“œ ๋ Œ๋”๋ง ๊ธฐ์ˆ ์ด๋‹ค. ์›น ์„œ๋ฒ„์—์„œ ๋™์ž‘ํ•˜๋ฉฐ, HTTP ์š”์ฒญ์„ ๋ฐ›์•„์„œ ์‘๋‹ต์„ ์ƒ์„ฑํ•˜๋Š” ์—ญํ• ์„ ํ•œ๋‹ค. ์„œ๋ธ”๋ฆฟ์€ ์ž๋ฐ”์˜ javax.servlet ํŒจํ‚ค์ง€๋ฅผ ํ†ตํ•ด ์ œ๊ณต๋˜๋ฉฐ, ์„œ๋ธ”๋ฆฟ ์ปจํ…Œ์ด๋„ˆ์—์„œ ์‹คํ–‰๋œ๋‹ค.

์—ญํ•  :

  • ํด๋ผ์ด์–ธํŠธ(์›น ๋ธŒ๋ผ์šฐ์ €)์˜ HTTP ์š”์ฒญ์„ ๋ฐ›์•„ ์„œ๋ฒ„์—์„œ ์ ์ ˆํ•œ ์ฒ˜๋ฆฌ๋ฅผ ํ•œ ํ›„, ๊ทธ ๊ฒฐ๊ณผ๋ฅผ HTML, JSON, XML ๋“ฑ์˜ ํ˜•ํƒœ๋กœ ์‘๋‹ต
  • ๋ณดํ†ต, HttpServlet ํด๋ž˜์Šค๋ฅผ ์ƒ์†๋ฐ›์•„ doGet() ๋˜๋Š” doPost() ๋ฉ”์„œ๋“œ๋ฅผ ์˜ค๋ฒ„๋ผ์ด๋”ฉํ•ด ์š”์ฒญ์„ ์ฒ˜๋ฆฌ

์˜ˆ์‹œ :

์Šคํฌ๋ฆฐ์ƒท 2024-09-26 21-03-17.png

JSP(JavaServer Pages)

์ •์˜ : JSP๋Š” HTML ์ฝ”๋“œ์— ์ž๋ฐ” ์ฝ”๋“œ๋ฅผ ์‚ฝ์ž…ํ•˜์—ฌ ๋™์ ์ธ ์›น ํŽ˜์ด์ง€๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋Š” ๊ธฐ์ˆ ์ด๋‹ค. JSP๋Š” ์ž๋ฐ” ์„œ๋ธ”๋ฆฟ์˜ ํ™•์žฅ์œผ๋กœ, ์›น ํŽ˜์ด์ง€์—์„œ ์‚ฌ์šฉ์ž ์š”์ฒญ์— ๋”ฐ๋ผ ๋™์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ํ‘œ์‹œํ•  ์ˆ˜ ์žˆ๋‹ค. JSP๋Š” ์ปดํŒŒ์ผ ์‹œ ์„œ๋ธ”๋ฆฟ์œผ๋กœ ๋ณ€ํ™˜๋˜์–ด ์‹คํ–‰๋œ๋‹ค.

์—ญํ•  :

  • HTML๊ณผ ์ž๋ฐ” ์ฝ”๋“œ๋ฅผ ๊ฒฐํ•ฉํ•˜์—ฌ ์„œ๋ฒ„ ์ธก์—์„œ ๋™์  ์›น ํŽ˜์ด์ง€๋ฅผ ์ƒ์„ฑ
  • ์ฃผ๋กœ ํ”„๋ฆฌ์  ํ…Œ์ด์…˜ ๋กœ์ง์„ ์ €๋ฆฌํ•˜๋ฉฐ, JSP์—์„œ ์‹คํ–‰๋˜๋Š” ์ž๋ฐ” ์ฝ”๋“œ๋Š” scriptlet์ด๋ผ๋Š” ํƒœ๊ทธ ์•ˆ์— ์‚ฝ์ž…๋œ๋‹ค

์˜ˆ์‹œ :

์Šคํฌ๋ฆฐ์ƒท 2024-09-26 21-04-22.png

์„œ๋ธ”๋ฆฟ๊ณผ JSP์˜ ๋“ฑ์žฅ: ์ž๋ฐ” ์›น ๊ฐœ๋ฐœ์˜ ์‹œ์ž‘

  1. ์„œ๋ธ”๋ฆฟ 1990๋…„๋Œ€ ๋ง, ์ž๋ฐ”๋Š” ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ์— ์ ํ•ฉํ•œ ๊ธฐ์ˆ ๋กœ ์ž๋ฆฌ์žก๊ณ  ์žˆ์—ˆ๋‹ค. ์„œ๋ธ”๋ฆฟ์€ ์›น ์„œ๋ฒ„์—์„œ ๋™์ž‘ํ•˜๋ฉฐ, HTTP ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๊ณ  ์‘๋‹ต์„ ์ƒ์„ฑํ•˜๋Š” ์„œ๋ฒ„ ์ธก ์ž๋ฐ” ํ”„๋กœ๊ทธ๋žจ์ด๋ฏ€๋กœ, ๊ธฐ์กด CGI(Common Gateway Interface) ๋ฐฉ์‹๋ณด๋‹ค ํ›จ์”ฌ ํšจ์œจ์ ์ด์—ˆ๋‹ค. ์„œ๋ธ”๋ฆฟ์€ ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋”ฉ์„ ์ง€์›ํ•ด ๊ฐ ์š”์ฒญ๋งˆ๋‹ค ์ƒˆ๋กœ์šด ํ”„๋กœ์„ธ์Šค๋ฅผ ์ƒ์„ฑํ•  ํ•„์š”๊ฐ€ ์—†์—ˆ์œผ๋ฉฐ, ์„œ๋ฒ„ ์„ฑ๋Šฅ์ด ํ–ฅ์ƒ๋˜์—ˆ๋‹ค.

  2. JSP ์„œ๋ธ”๋ฆฟ๋งŒ์œผ๋กœ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•˜๊ธฐ์—๋Š” ๋ถˆํŽธํ•จ์ด ์žˆ์—ˆ๋‹ค. ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๋„์ž… -> JSP : HTML ์ฝ”๋“œ ์•ˆ์— ์ž๋ฐ” ์ฝ”๋“œ๋ฅผ ์‚ฝ์ž…ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋ฉฐ, ๊ฐœ๋ฐœ์ž๊ฐ€ ์›น ํŽ˜์ด์ง€์—์„œ ๋™์ ์ธ ์ฝ˜ํ…์ธ ๋ฅผ ์‰ฝ๊ฒŒ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์คŒ

์„œ๋ธ”๋ฆฟ๊ณผ JSP๋Š” ์ดˆ๊ธฐ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ์—์„œ ์ค‘์š”ํ•œ ๊ธฐ์ˆ ์  ๊ธฐ์ดˆ๋ฅผ ์ œ๊ณตํ–ˆ์œผ๋‚˜, ์‹œ๊ฐ„์ด ์ง€๋‚จ์— ๋”ฐ๋ผ ๋ช‡ ๊นŒ์ง€ ์ค‘์š”ํ•œ ํ•œ๊ณ„๊ฐ€ ๋“œ๋Ÿฌ๋‚ฌ๋‹ค.

์„œ๋ธ”๋ฆฟ/JSP์˜ ํ•œ๊ณ„

  1. ์ฝ”๋“œ์˜ ๋ณต์žก์„ฑ๊ณผ ์œ ์ง€๋ณด์ˆ˜์˜ ์–ด๋ ค์›€ | ์„œ๋ธ”๋ฆฟ๊ณผ JSP๋Š” ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง๊ณผ ํ”„๋ฆฌ์  ํ…Œ์ด์…˜ ๋กœ์ง์„ ๋ถ„๋ฆฌํ•˜๊ธฐ ์–ด๋ ต๋‹ค๋Š” ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ๋‹ค => ์œ ์ง€๋ณด์ˆ˜์„ฑ๊ณผ ํ™•์žฅ์„ค down

  2. ๋ณต์žกํ•œ ์š”์ฒญ ์ฒ˜๋ฆฌ์™€ ํ™•์žฅ์„ฑ ๋ถ€์กฑ | ์„œ๋ธ”๋ฆฟ์€ ๊ฐ ์š”์ฒญ์— ๋Œ€ํ•ด ์ ์ ˆํ•œ ์ฒ˜๋ฆฌ๋ฅผ ํ•˜๋„๋ก URL ๋งคํ•‘์„ ๊ด€๋ฆฌํ•ด์•ผ ํ–ˆ๊ณ , ๊ฐœ๋ฐœ์ž๊ฐ€ ์ˆ˜์ข…์œผ๋กœ ์ด๋ฅผ ์ฒ˜๋ฆฌํ•ด์•ผ ํ–ˆ๋‹ค. => ๋Œ€๊ทœ๋ชจ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ๋Š” ์ฝ”๋“œ ์ค‘๋ณต๊ณผ ๋ณต์žก์„ฑ์ด ๋ฌธ์ œ๊ฐ€ ๋จ

  3. ๊ฐ์ฒด ๊ฐ„ ๊ฒฐํ•ฉ๋„ ๋ฌธ์ œ | ์„œ๋ธ”๋ฆฟ๊ณผ JSP๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ๊ฐ ๊ฐ์ฒด๋“ค์ด ์ง์ ‘ ์„œ๋กœ์˜ ์˜์กด์„ฑ์„ ๊ด€๋ฆฌํ•ด์•ผ ํ–ˆ๋‹ค. => ๋†’์€ ๊ฒฐํ•ฉ๋„ + ์œ ์ง€๋ณด์ˆ˜, ํ…Œ์ŠคํŠธ ๋ณต์žกํ•ด์ง

์Šคํ”„๋ง ํ”„๋ ˆ์ž„์›Œํฌ๋Š” ์œ„์—์„œ ์–ธ๊ธ‰ํ•œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ณ  ์ž๋ฐ” ์›น ๊ฐœ๋ฐœ์˜ ํŒจ๋Ÿฌ๋‹ค์ž„์„ ๋ณ€ํ™”์‹œํ‚ค๊ธฐ ์œ„ํ•ด ๋“ฑ์žฅํ–ˆ๋‹ค. ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ๊ณ„์˜ ์ƒ›๋ณ„์ด ๋˜๊ธฐ ์œ„ํ•ด์„œ ( ํ™•์žฅ์„ฑ, ์œ ์ง€๋ณด์ˆ˜์„ฑ, ์ƒ์‚ฐ์„ฑ up )

์Šคํ”„๋ง ํ”„๋ ˆ์ž„์›Œํฌ์˜ ๋“ฑ์žฅ

  1. ์˜์กด์„ฑ ์ฃผ์ž…(DI)๊ณผ ์ œ์–ด์˜ ์—ญ์ „(IoC) | ์Šคํ”„๋ง์€ ์˜์กด์„ฑ ์ฃผ์ž…์„ ํ†ตํ•ด ๊ฐ์ฒด ๊ฐ„์˜ ์˜์กด์„ฑ์„ ๊ด€๋ฆฌํ•จ => ํŒฉํ† ๋ฆฌ ํŒจํ„ด์˜ ํ™•์žฅ ๊ฐ์ฒด ์ƒ์„ฑ์„ ์Šคํ”„๋ง ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์ฑ…์ž„์ง€๋ฉฐ, ํ•„์š”ํ•œ ์˜์กด์„œ์„ ์ž๋™์œผ๋กœ ์ฃผ์ž… => ๊ฐ์ฒด ๊ฐ„ ๊ฒฐํ•ฉ๋„ down => ์œ ์—ฐ์„ฑ, ํ™•์žฅ์„ฑ up!
  • DI ์˜ ํšจ๊ณผ: ๊ฐ์ฒด ์ƒ์„ฑ์„ ์™ธ๋ถ€์—์„œ ์ฒ˜๋ฆฌํ•ด ๊ฐ์ฒด ๊ฐ„์˜ ๊ฒฐํ•ฉ๋„๋ฅผ ์ค„์ž„์œผ๋กœ์จ ์œ ์ง€๋ณด์ˆ˜์„ฑ๊ณผ ํ…Œ์ŠคํŠธ ์šฉ์ด์„ฑ์ด ํฌ๊ฒŒ ํ–ฅ์ƒ๋จ
  1. AOP(Aspect-Oriented Programming)์™€ ๊ณตํ†ต ๊ธฐ๋Šฅ์˜ ๋ถ„๋ฆฌ | ์Šคํ”„๋ง์€ AOP๋ฅผ ํ†ตํ•ด ๋กœ๊น…, ํŠธ๋žœ์žญ์…˜ ๊ด€๋ฆฌ, ๋ณด์•ˆ๊ณผ ๊ฐ™์€ ํšก๋‹จ ๊ด€์‹ฌ์‚ฌ๋ฅผ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง๊ณผ ๋ถ„๋ฆฌํ•˜์—ฌ ์ฒ˜๋ฆฌํ•จ => ํ”„๋ก์‹œ ํŒจํ„ด ๊ธฐ๋ฐ˜ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง ์ „ํ›„์— ํŠน์ • ๋กœ์ง์„ ์‚ฝ์ž…ํ•  ์ˆ˜ ์žˆ๋‹ค
  • AOP์˜ ํšจ๊ณผ: ํ•ต์‹ฌ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง๊ณผ ๊ณตํ†ต ๊ธฐ๋Šฅ์„ ๋ถ„๋ฆฌํ•˜์—ฌ ์ฝ”๋“œ์˜ ๋ณต์žฅ์„ฑ์„ ์ค„์ด๊ณ , ๋ฐ˜๋ณต์ ์ธ ์ฝ”๋“œ๋ฅผ ์ œ๊ฑฐํ•จ์œผ๋กœ์จ ์œ ์ง€๋ณด์ˆ˜๊ฐ€ ์šฉ์ดํ•ด์ง
  1. Spring MVC: ์™„์ „ํ•œ MVC ํŒจํ„ด์˜ ๊ตฌํ˜„ | ์„œ๋ธ”๋ฆฟ๊ณผ JSP์—์„œ์˜ MVC ๊ตฌํ˜„์ด ๋ช…ํ™•ํ•˜์ง€ ์•Š์•˜์Œ => ์Šคํ”„๋ง์€ Spring MVC๋ฅผ ํ†ตํ•ด ๋ชจ๋ธ(Model)-๋ทฐ(View)-์ปจํŠธ๋กค๋Ÿฌ(Controller) ํŒจํ„ด์„ ์™„๋ฒฝํ•˜๊ฒŒ ๊ตฌํ˜„ํ•จ
  • DispatcherServlet์ด ๋ชจ๋“  ์š”์ฒญ์„ ์ค‘์•™์—์„œ ์ฒ˜๋ฆฌํ•˜๊ณ , ์š”์ฒญ์— ๋”ฐ๋ผ ์ ์ ˆํ•œ ์ปจํŠธ๋กค๋Ÿฌ์— ์ „๋‹ฌํ•œ ํ›„, ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ์ˆ˜ํ–‰ํ•˜๊ณ , ๊ฒฐ๊ณผ๋ฅผ ๋ทฐ์— ์ „๋‹ฌํ•จ
  • Controller๋Š” ์ˆœ์ˆ˜ํ•œ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ๋‹ด๋‹นํ•˜๊ณ , View๋Š” ํ”„๋ฆฌ์  ํ…Œ์ด์…˜ ๋กœ์ง์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์ฑ…์ž„์ด ๋ช…ํ™•ํ•˜๊ฒŒ ๋ถ„๋ฆฌ๋จ~
  1. ํŠธ๋ž™์žญ์…˜ ๊ด€๋ฆฌ์™€ ํ…œํ”Œ๋ฆฟ ๋ฉ”์„œ๋“œ ํŒจํ„ด | ์Šคํ”„๋ง์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€์˜ ์ƒํ˜ธ์ž‘์šฉ์„ ์œ„ํ•ด ํŠธ๋žœ์žญ์…˜ ๊ด€๋ฆฌ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋ฉฐ, ์„ ์–ธ์  ํŠธ๋žœ์žญ์…˜ ๊ด€๋ฆฌ๋กœ ๊ฐœ๋ฐœ์ž๋Š” ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์—๋งŒ ์ง‘์ค‘ํ•  ์ˆ˜ ์žˆ์Œ. ๋˜ํ•œ JdbcTemplate์™€ ๊ฐ™์€ ํ…œํ”Œ๋ฆฟ ๋ฉ”์„œ๋“œ ํŒจํ„ด์„ ํ†ตํ•ด ๋ฐ˜๋ณต์ ์ธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ฝ”๋“œ ์ž‘์„ฑ์„ ์ค„์—ฌ ์ƒ์‚ฐ์„ฑ์„ ๋†’์˜€์Œ

MVC ํŒจํ„ด (Model-VIew-Controller)

์ •์˜: MVC ํŒจํ„ด์€ ์†Œํ”„ํŠธ์›จ์–ด ์•„ํ‚คํ…์ฒ˜ ํŒจํ„ด์œผ๋กœ, ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์„ธ ๊ฐ€์ง€ ์ฃผ์š” ๊ตฌ์„ฑ ์š”์†Œ๋กœ ๋‚˜๋ˆ„์–ด ๊ฐœ๋ฐœํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค
๊ตฌ์„ฑ ์š”์†Œ:

  • Model (๋ชจ๋ธ): ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋ฐ์ดํ„ฐ์™€ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ณ„์ธต์ด๋‹ค. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ์ƒํ˜ธ์ž‘์šฉํ•˜๊ฑฐ๋‚˜ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€๊ณตํ•˜๋Š” ๋“ฑ์˜ ์—ญํ• ์„ ํ•œ๋‹ค
  • View (๋ทฐ): ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ณด์—ฌ์ง€๋Š” ์ธํ„ฐํŽ˜์ด์Šค๋กœ, HTML, JSP, Thymeleaf ๋“ฑ์˜ UI๋ฅผ ๋‹ด๋‹นํ•œ๋‹ค. ๋ชจ๋ธ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉ์ž์—๊ฒŒ ์ ์ ˆํ•œ ํ˜•์‹์œผ๋กœ ์ถœ๋ ฅํ•œ๋‹ค.
  • Controller (์ปจํŠธ๋กค๋Ÿฌ): ์‚ฌ์šฉ์ž์˜ ์š”์ฒญ์„ ๋ฐ›์•„์„œ ์ฒ˜๋ฆฌํ•˜๊ณ , ์ ์ ˆํ•œ ๋ชจ๋ธ์„ ํ˜ธ์ถœํ•œ ๋’ค ๋ทฐ์— ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•˜๋Š” ์—ญํ• ์„ ํ•œ๋‹ค

์˜ˆ์‹œ:

์Šคํฌ๋ฆฐ์ƒท 2024-10-01 12-34-32.png

DI (Dependency Injection, ์˜์กด์„ฑ ์ฃผ์ž…)

์ •์˜ : DI๋Š” ๊ฐ์ฒด ๊ฐ„์˜ ์˜์กด์„ฑ์„ ์™ธ๋ถ€์—์„œ ์ฃผ์ž…ํ•˜๋Š” ์„ค๊ณ„ ํŒจํ„ด์ด๋‹ค. ์Šคํ”„๋ง์—์„œ๋Š” ๊ฐ์ฒด๊ฐ€ ๋‹ค๋ฅธ ๊ฐ์ฒด์— ์˜์กดํ•  ๋•Œ, ํ•ด๋‹น ์˜์กด์„ฑ์„ ์Šคํ”„๋ง ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ๊ด€๋ฆฌํ•˜์—ฌ ์ฃผ์ž…ํ•œ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๊ฐ์ฒด ๊ฐ„ ๊ฒฐํ•ฉ๋„๋ฅผ ๋‚ฎ์ถ”๊ณ , ์œ ์—ฐ์„ฑ๊ณผ ํ…Œ์ŠคํŠธ ๊ฐ€๋Šฅ์„ฑ์„ ๋†’์ธ๋‹ค.
์—ญํ•  :

  • ๊ฐ์ฒด ์ƒ์„ฑ๊ณผ ์˜์กด์„ฑ ๊ด€๋ฆฌ๋ฅผ ํ”„๋ ˆ์ž„์›Œํฌ๊ฐ€ ๋งก์œผ๋ฏ€๋กœ ๊ฐœ๋ฐœ์ž๋Š” ๊ฐ์ฒด ๊ฐ„์˜ ๊ฒฐํ•ฉ๋„๋ฅผ ์ตœ์†Œํ™”ํ•  ์ˆ˜ ์žˆ๋‹ค
  • ์Šคํ”„๋ง์—์„œ DI๋Š” ์ฃผ๋กœ ์ปจํŠธ๋กค๋Ÿฌ์™€ ์„œ๋น„์Šค ํด๋ž˜์Šค ๊ฐ„์˜ ์˜์กด์„ฑ์„ ๊ด€๋ฆฌํ•  ๋•Œ ์‚ฌ์šฉ๋œ๋‹ค

IoC (Inversion of Control, ์ œ์–ด์˜ ์—ญ์ „)

์ •์˜ : IoC๋Š” ๊ฐ์ฒด์˜ ์ƒ์„ฑ๊ณผ ์‚ฌ์šฉ์„ ํ”„๋ ˆ์ž„์›Œํฌ๊ฐ€ ๊ด€๋ฆฌํ•˜๋Š” ๊ฐœ๋…์ด๋‹ค. ์ „ํ†ต์ ์œผ๋กœ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ์ž๋Š” ํ•„์š”ํ•œ ๊ฐ์ฒด๋ฅผ ์ง์ ‘ ์ƒ์„ฑํ•˜๊ณ  ํ˜ธ์ถœํ–ˆ์ง€๋งŒ, IoC๋Š” ์ด๋Ÿฌํ•œ ํ๋ฆ„์„ ์—ญ์ „์‹œ์ผœ ๊ฐ์ฒด์˜ ์ƒ๋ช… ์ฃผ๊ธฐ์™€ ์˜์กด์„ฑ ๊ด€๋ฆฌ๋ฅผ ํ”„๋ ˆ์ž„์›Œํฌ์— ๋งก๊ธด๋‹ค.
์—ญํ•  :

  • IoC ์ปจํ…Œ์ด๋„ˆ๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๊ฐ์ฒด๋“ค์„ ๊ด€๋ฆฌํ•˜๊ณ , ํ•„์š”ํ•œ ์‹œ์ ์— ๊ฐ์ฒด๋ฅผ ์ž๋™์œผ๋กœ ์ƒ์„ฑํ•ด ์˜์กด์„ฑ์„ ์ฃผ์ž…ํ•ด ์ค€๋‹ค
  • ์Šคํ”„๋ง์˜ @Autowired์™€ ๊ฐ™์€ ์ฃผ์„์€ IoC ๊ฐœ๋…์„ ์ ์šฉํ•œ ์˜์กด์„ฑ ์ฃผ์ž…์„ ์‰ฝ๊ฒŒ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ๋„๊ตฌ์ด๋‹ค

์„œ๋ธ”๋ฆฟ - > ์Šคํ”„๋ง

๋ณต์žก์„ฑ - > ๋‹จ์ˆœ์„ฑ
์Šคํ”„๋ง์˜ ์˜์กด์„ฑ ์ฃผ์ž…๊ณผ MVC ํŒจํ„ด์„ ํ†ตํ•ด ํ›จ์”ฌ ๋ช…ํ™•ํ•˜๊ณ  ์ฒด๊ณ„์ ์ธ ๊ตฌ์กฐ๋กœ ์ „ํ™˜

์ˆ˜๋™ ๊ด€๋ฆฌ - > ์ž๋™ ๊ด€๋ฆฌ
์Šคํ”„๋ง์˜ ์ปจํ…Œ์ด๋„ˆ ๊ธฐ๋ฐ˜ ๊ด€๋ฆฌ๋ฅผ ํ†ตํ•ด URL ๋งคํ•‘์ด๋‚˜ ๊ฐ์ฒด ์ƒ์„ฑ์„ ์ž๋™ํ™”

โณ ํƒˆ์ถœ <-